package com.javabank.ws.domain;

import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.Serializable;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Column;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

@Entity
@XmlRootElement(name = "Account")
@Table(name = "Account")
public class Account implements Serializable{
	private static final long serialVersionUID = 1L;
	
	@Id
	@Column(updatable = false)
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private int id;
	// Vereiste opgave 2: het moet onmogelijk zijn het rekeningnummer van een account te wijzigen
	@Column(updatable = false)
	private int rekeningnummer;
	private double saldo;
	private int limiet;
	private String naam;
	private String adres;
	private String woonplaats;
	
	public Account() {
    }

    public Account(int id) {
        this.id = id;
    }

    public Account(int id, int rekeningnummer, String naam, String adres, String woonplaats, double saldo, int limiet) {
    	this.id = id;
        this.rekeningnummer = rekeningnummer;
        this.naam = naam;
        this.adres = adres;
        this.woonplaats = woonplaats;
        this.saldo = saldo;
        this.limiet = limiet;
    }
	
	public int getId() {
		return id;
	}
	
	public void setId(int id) {
		this.id = id;
	}

	public int getRekeningnummer() {
		return rekeningnummer;
	}
	public void setRekeningnummer(int rekeningnummer) {
		this.rekeningnummer = rekeningnummer;
	}
	public double getSaldo() {
		return saldo;
	}
	public void setSaldo(double saldo) {
		this.saldo = saldo;
	}
	public int getLimiet() {
		return limiet;
	}
	public void setLimiet(int limiet) {
		this.limiet = limiet;
	}
	public String getNaam() {
		return naam;
	}
	public void setNaam(String naam) {
		this.naam = naam;
	}
	public String getAdres() {
		return adres;
	}
	public void setAdres(String adres) {
		this.adres = adres;
	}
	public String getWoonplaats() {
		return woonplaats;
	}
	public void setWoonplaats(String woonplaats) {
		this.woonplaats = woonplaats;
	}	
}
